package foroFavoritos;

import java.util.Collections;
import java.util.HashSet;
import java.util.TreeSet;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import es.cea.core.scopes.Contexto;
import es.cea.core.scopes.Sesion;
import foro.Foro;
import foro.Mensaje;
import foro.UsuarioNoRegistradoException;
import foro.UsuarioSinPermisosException;

import registro.ServicioRegistro;
import registro.Usuario;
    
	/* ServicioForo MODIFICADO PARA EJERCICIO NUEVO - FAVORITOS*/
	/* ServicioForo MODIFICADO PARA EJERCICIO NUEVO - FAVORITOS*/
	/* ServicioForo MODIFICADO PARA EJERCICIO NUEVO - FAVORITOS*/
	/* ServicioForo MODIFICADO PARA EJERCICIO NUEVO - FAVORITOS*/

public class ServicioForo {
	
	Sesion sesion;
	Contexto context;
	
	protected final Log logger = LogFactory.getLog(getClass());
	
	public Foro dameForo(String nombreForo) throws UsuarioNoRegistradoException,UsuarioSinPermisosException {
		
		Usuario user;
		user = (Usuario)sesion.getAtributo("usuario");
		
		Foro foroMentira = new Foro();
		foroMentira.nombre = nombreForo;
		
		if (user == null){
			throw new UsuarioNoRegistradoException();
		}
			
		if (user.foros.contains(foroMentira)){
					
			int indice;
			indice = user.foros.indexOf(foroMentira);
			return user.foros.get(indice);
		} else {
			throw new UsuarioSinPermisosException();
		}

	}
	
	public void addFavorito(Mensaje mensaje){
		
		/*
		Usuario usuarioSes = new Usuario();
		usuarioSes = (Usuario)ses.getAtributo("usuario");
		*/
		HashSet<Mensaje> favoritosSes = new HashSet<Mensaje>();
		favoritosSes = (HashSet<Mensaje>)sesion.getAtributo("favoritos");
		
//		logger.debug(favoritosSes);
		HashSet<Mensaje> favoritosContext = new HashSet<Mensaje>();
		favoritosContext = (HashSet<Mensaje>)context.getAtributo("favoritos");
//		logger.debug(favoritosContext);
		
		favoritosSes.add(mensaje);
		favoritosContext.add(mensaje);
		
	}
	
	public void imprimeFavoritosOrdenNombre(){

		TreeSet<Mensaje> nuevo = new TreeSet<Mensaje>() ;
		
		
		HashSet<Mensaje> favoritosContext = new HashSet<Mensaje>();
		favoritosContext = (HashSet<Mensaje>)context.getAtributo("favoritos");
		nuevo.addAll(favoritosContext);
		
		System.out.println(nuevo);
	}
	
}
